###来自于《实战Python网络爬虫》的P47～48下载与上传第一个黑框
##import requests
##url="https://www.python.org/static/img/python-logo.png"
##r=requests.get(url)
##f=open("python.jpg","wb")
###r.content获取响应内容（字节流）
##f.write(r.content)
##f.close()

#综合自《实战Python网络爬虫》P35～P49，以及李笑来的正则表达式。
#2021-04-18 22：29
#扩展自上方注释部分，目前均为GET方式获取的内容，关于POST方式需要再翻书，比如P48页的内容。
import requests
import re
#总思想：先抓取Python.org的网站html信息，然后通过正则匹配方式，获取和.png有关的网址，再次使用正则匹配和筛选所需要的网站，最后使用r.content配合for循环批量生成图片。
url="https://www.python.org"
headers={"user-Agent":"Mozilla/5.0 (X11; CrOS armv7l 13597.84.0) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/88.0.4324.187 Safari/537.36",
         "referer":"https://www.python.org/"}
urlFile="_3_pythonOrg.txt"
r=requests.get(url,headers=headers)
f=open(urlFile,"wb")
#r.content获取响应内容（字节流）
f.write(r.content)
f.close()

#pttn="\S*.png"
pttn="\S*.png"
f=open(urlFile,"r")
txt=f.read()
print(txt)
pngResult=re.findall(pttn,txt)#这个re出来的东西本身就是个List
f.close()

print('pngResult=',pngResult,'\n','pngResult个数为：',len(pngResult),'\n',str(pngResult))

pttn2="(https?\:\/\/www.python.org\/static\/\S*.png)"
pttn3="(src=\S*.png)"
httpsResult=re.findall(pttn2,str(pngResult))
srcResult=re.findall(pttn3,str(pngResult))
print(httpsResult,'\n',srcResult)

for i in range(len(httpsResult)):
    print(i,'\n')
    url=httpsResult[i]
    r=requests.get(url)
    f=open(f"python{i}.jpg","wb")
    #r.content获取响应内容（字节流）
    f.write(r.content)
    f.close()
